home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / sun / volume2 / contool3.0 / patch02 < prev    next >
Encoding:
Internet Message Format  |  1990-11-29  |  60.1 KB

  1. Path: uunet!ogicse!uwm.edu!rutgers!aramis.rutgers.edu!mcgrew
  2. From: mcgrew@aramis.rutgers.edu (Charles Mcgrew)
  3. Newsgroups: comp.sources.sun
  4. Subject: v02i035:  Contool 3.0, patch 2
  5. Message-ID: <Nov.28.11.47.16.1990.16869@aramis.rutgers.edu>
  6. Date: 28 Nov 90 16:47:18 GMT
  7. Organization: Rutgers Univ., New Brunswick, N.J.
  8. Lines: 2008
  9. Approved: mcgrew@aramis.rutgers.edu
  10. Posted: Wed Nov 28 08:47:18 1990
  11.  
  12. Submitted-by: chuck@melmac.harris-atd.com (Chuck Musciano)
  13. Posting-number: Volume 2, Issue 35
  14. Archive-name: contool3.0/patch02
  15.  
  16.  
  17.      This is patch number 2 for contool 3.0.  This patch fixes a few
  18. minor bugs, including the annoying "coming up with a 1x1 icon" bug that
  19. was vexing a few people.  There is also a new "About contool..." window
  20. which gives a more detailed history of the tool.
  21.  
  22.      After applying this patch, make sure you check the Imakefile or
  23. Makefile to verify that MAILER is defined to be your system mailer.
  24. The default is /usr/ucb/mail, which may not work on all systems.
  25.  
  26. Chuck Musciano                ARPA  : chuck@trantor.harris-atd.com
  27. Harris Corporation             Usenet: ...!uunet!x102a!trantor!chuck
  28. PO Box 37, MS 3A/1912            AT&T  : (407) 727-6131
  29. Melbourne, FL 32902            FAX   : (407) 729-2537
  30.  
  31. A good newspaper is never good enough,
  32.     but a lousy newspaper is a joy forever.        -- Garrison Keillor
  33.  
  34. #! /bin/sh
  35. # This is a shell archive.  Remove anything before this line, then unpack
  36. # it by saving it into a file and typing "sh file".  To overwrite existing
  37. # files, type "sh file -c".  You can also feed this as standard input via
  38. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  39. # will see the following message at the end:
  40. #        "End of shell archive."
  41. # Contents:  patch
  42. # Wrapped by chuck@melmac on Thu Nov  1 15:12:59 1990
  43. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  44. if test -f 'patch' -a "${1}" != "-c" ; then 
  45.   echo shar: Will not clobber existing file \"'patch'\"
  46. else
  47. echo shar: Extracting \"'patch'\" \(57082 characters\)
  48. sed "s/^X//" >'patch' <<'END_OF_FILE'
  49. X*** Makefile.orig    Thu Nov  1 15:09:31 1990
  50. X--- Makefile    Thu Nov  1 14:51:23 1990
  51. X***************
  52. X*** 8,13 ****
  53. X--- 8,16 ----
  54. X  # Where to install the help file
  55. X  HELPDIR        = /usr/local/lib/help
  56. X  
  57. X+ # Mailer you use
  58. X+ MAILER        = /usr/ucb/mail
  59. X+ 
  60. X  # paths to be searched for icons
  61. X  ICON_PATH    = .:./icons:/usr/local/images:/usr/include/images
  62. X  
  63. X***************
  64. X*** 18,26 ****
  65. X  LDFLAGS        = -L$(OPENWINHOME)/lib
  66. X  
  67. X  # Where your XView include files are installed
  68. X! CPPFLAGS    = -I$(OPENWINHOME)/include
  69. X  
  70. X! CONTOOL        = contool.o contool_ui.o error.o expand.o filters.o load.o load_icon.o logging.o misc.o parse.o props.o regexp.o store.o window_misc.o
  71. X  
  72. X  OPTIONS        = -O
  73. X  
  74. X--- 21,31 ----
  75. X  LDFLAGS        = -L$(OPENWINHOME)/lib
  76. X  
  77. X  # Where your XView include files are installed
  78. X! CPPFLAGS    = -I$(OPENWINHOME)/include -DMAILER=\"$(MAILER)\"
  79. X  
  80. X! CONTOOL        = about.o busy.o contool.o contool_ui.o error.o expand.o filename_completion.o \
  81. X!           filters.o load.o load_icon.o logging.o misc.o parse.o \
  82. X!           pinned_menu_notify.o place_dialog.o props.o regexp.o send_mail.o store.o
  83. X  
  84. X  OPTIONS        = -O
  85. X  
  86. X***************
  87. X*** 50,55 ****
  88. X--- 55,64 ----
  89. X  
  90. X  #dependencies
  91. X  
  92. X+ about.o: contool_ui.h manifest.h
  93. X+ 
  94. X+ busy.o: manifest.h
  95. X+ 
  96. X  contool.o: manifest.h contool.h contool_ui.h icons/default_good.icon \
  97. X       icons/default_bad.icon icons/default_flash.icon icons/mask.icon
  98. X  
  99. X***************
  100. X*** 59,70 ****
  101. X  
  102. X  expand.o: manifest.h
  103. X  
  104. X  filters.o: manifest.h contool.h contool_ui.h images/single.icon \
  105. X       images/range.icon images/empty.icon
  106. X  
  107. X  load.o: manifest.h contool.h contool_ui.h
  108. X  
  109. X! load_icon.o: manifest.h contool.h
  110. X  
  111. X  logging.o: manifest.h contool.h contool_ui.h
  112. X  
  113. X--- 68,81 ----
  114. X  
  115. X  expand.o: manifest.h
  116. X  
  117. X+ filename_completion.o: manifest.h
  118. X+ 
  119. X  filters.o: manifest.h contool.h contool_ui.h images/single.icon \
  120. X       images/range.icon images/empty.icon
  121. X  
  122. X  load.o: manifest.h contool.h contool_ui.h
  123. X  
  124. X! load_icon.o: manifest.h
  125. X  
  126. X  logging.o: manifest.h contool.h contool_ui.h
  127. X  
  128. X***************
  129. X*** 72,81 ****
  130. X  
  131. X  parse.o: manifest.h contool.h lex.c
  132. X  
  133. X  props.o: manifest.h contool.h contool_ui.h
  134. X  
  135. X  regexp.o: manifest.h contool.h
  136. X  
  137. X! store.o: manifest.h contool.h contool_ui.h
  138. X  
  139. X! window_misc.o: manifest.h contool_ui.h
  140. X--- 83,96 ----
  141. X  
  142. X  parse.o: manifest.h contool.h lex.c
  143. X  
  144. X+ pinned_menu_notify.o: manifest.h
  145. X+ 
  146. X+ place_dialog.o: manifest.h
  147. X+ 
  148. X  props.o: manifest.h contool.h contool_ui.h
  149. X  
  150. X  regexp.o: manifest.h contool.h
  151. X  
  152. X! send_mail.o: contool_ui.h manifest.h
  153. X  
  154. X! store.o: manifest.h contool.h contool_ui.h
  155. X*** Imakefile.orig    Thu Nov  1 15:09:34 1990
  156. X--- Imakefile    Thu Nov  1 14:51:22 1990
  157. X***************
  158. X*** 2,20 ****
  159. X  
  160. X  HELPDIR        = /usr/local/lib/help
  161. X  
  162. X  LOCAL_LIBRARIES = -lxview -lolgx $(XLIB)
  163. X  
  164. X  LDOPTIONS    = -L$(OPENWINHOME)/lib
  165. X  
  166. X! CFLAGS        = -O -I$(OPENWINHOME)/include
  167. X  
  168. X! SRCS        = contool.c contool_ui.c error.c expand.c filters.c \
  169. X!           load.c load_icon.c logging.c misc.c parse.y props.c \
  170. X!           regexp.c store.c window_misc.c
  171. X  
  172. X! OBJS        = contool.o contool_ui.o error.o expand.o filters.o \
  173. X!           load.o load_icon.o logging.o misc.o parse.o props.o \
  174. X!           regexp.o store.o window_misc.o
  175. X  
  176. X  ComplexProgramTarget(contool)
  177. X  
  178. X--- 2,22 ----
  179. X  
  180. X  HELPDIR        = /usr/local/lib/help
  181. X  
  182. X+ MAILER        = /usr/ucb/mail
  183. X+ 
  184. X  LOCAL_LIBRARIES = -lxview -lolgx $(XLIB)
  185. X  
  186. X  LDOPTIONS    = -L$(OPENWINHOME)/lib
  187. X  
  188. X! CFLAGS        = -O -I$(OPENWINHOME)/include -DMAILER=\"$(MAILER)\"
  189. X  
  190. X! SRCS        = about.c busy.c contool.c contool_ui.c error.c expand.c filename_completion.c \
  191. X!           filters.c load.c load_icon.c logging.c misc.c parse.y \
  192. X!           pinned_menu_notify.c place_dialog.c props.c regexp.c send_mail.c store.c
  193. X  
  194. X! OBJS        = about.o busy.o contool.o contool_ui.o error.o expand.o filename_completion.o \
  195. X!           filters.o load.o load_icon.o logging.o misc.o parse.o \
  196. X!           pinned_menu_notify.o place_dialog.o props.o regexp.o send_mail.o store.o
  197. X  
  198. X  ComplexProgramTarget(contool)
  199. X  
  200. X*** README.orig    Thu Nov  1 15:09:35 1990
  201. X--- README    Thu Nov  1 13:39:35 1990
  202. X***************
  203. X*** 54,59 ****
  204. X--- 54,61 ----
  205. X          HELPDIR        Where the context-sensitive help file
  206. X                  will be stored.
  207. X  
  208. X+         MAILER        The full path of your system mailer.
  209. X+ 
  210. X          ICON_PATH    Path to search (at runtime) for other
  211. X                  icon files.  This path will only be used
  212. X                  if the user does not have the ICON_PATH
  213. X***************
  214. X*** 178,180 ****
  215. X--- 180,185 ----
  216. X                  Fixed handling of dialog boxes under
  217. X                     window managers other than olwm.
  218. X                  Add Imakefile.
  219. X+     3.0b            Fixed "tiny icon" bug.
  220. X+                 Added "About contool..." dialog.
  221. X+                 Source restructuring for maintainability.
  222. X*** contool.info.orig    Thu Nov  1 15:09:37 1990
  223. X--- contool.info    Thu Nov  1 13:47:28 1990
  224. X***************
  225. X*** 281,283 ****
  226. X--- 281,364 ----
  227. X  # 
  228. X  :accept_store
  229. X  The Store button writes the desired items to the configuration file.  The entire file is overwritten with the data.  Thus, a file containing properties and filters will be completely rewritten, even if you only write the filters to it.
  230. X+ # 
  231. X+ :about_controls
  232. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  233. X+ # 
  234. X+ :message1
  235. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  236. X+ # 
  237. X+ :message5
  238. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  239. X+ # 
  240. X+ :message6
  241. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  242. X+ # 
  243. X+ :message7
  244. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  245. X+ # 
  246. X+ :message8
  247. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  248. X+ # 
  249. X+ :message9
  250. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  251. X+ # 
  252. X+ :message10
  253. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  254. X+ # 
  255. X+ :message15
  256. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  257. X+ # 
  258. X+ :message11
  259. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  260. X+ # 
  261. X+ :message12
  262. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  263. X+ # 
  264. X+ :message13
  265. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  266. X+ # 
  267. X+ :message14
  268. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  269. X+ # 
  270. X+ :message16
  271. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  272. X+ # 
  273. X+ :message17
  274. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  275. X+ # 
  276. X+ :message18
  277. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  278. X+ # 
  279. X+ :message19
  280. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  281. X+ # 
  282. X+ :message20
  283. X+ This window gives you some details about the development of contool, encourages you to correspond with the developer to improve future versions of contool, and delineates the restrictions placed on the contool source code.
  284. X+ # 
  285. X+ :send_mail
  286. X+ Clicking this button will open another window in which you can compose and send mail to the developer of contool.
  287. X+ # 
  288. X+ :mail_controls
  289. X+ This window allows you to send mail concerning contool to its developer.  You are encouraged to send comments and suggestions in order to make contool a better tool.
  290. X+ # 
  291. X+ :message21
  292. X+ This window allows you to send mail concerning contool to its developer.  You are encouraged to send comments and suggestions in order to make contool a better tool.
  293. X+ # 
  294. X+ :message22
  295. X+ This window allows you to send mail concerning contool to its developer.  You are encouraged to send comments and suggestions in order to make contool a better tool.
  296. X+ # 
  297. X+ :address
  298. X+ This choice item lets you select the address to which your mail will be sent.  If your machine understands Internet-style addresses, you should use the first choice item.  If you are a UUCP-based site, you should use the second item.  If neither address works, use the third item to enter a valid address.
  299. X+ # 
  300. X+ :other_address
  301. X+ This text field is used to enter an e-mail address to which your mail will be sent.  It should only be used if the two default addresses do not work from your site.
  302. X+ # 
  303. X+ :mail_controls1
  304. X+ This window allows you to send mail concerning contool to its developer.  You are encouraged to send comments and suggestions in order to make contool a better tool.
  305. X+ # 
  306. X+ :accept_send
  307. X+ Clicking this button will send your mail message to contool's developer.
  308. X+ # 
  309. X+ :cancel_mail
  310. X+ Clicking this button cancels the message you were going to send.
  311. X*** about.c.orig    Thu Nov  1 15:09:38 1990
  312. X--- about.c    Thu Nov  1 11:46:52 1990
  313. X***************
  314. X*** 0 ****
  315. X--- 1,35 ----
  316. X+ /************************************************************************/
  317. X+ /*                                    */
  318. X+ /*    about.c        display a little information window        */
  319. X+ /*                                    */
  320. X+ /************************************************************************/
  321. X+ 
  322. X+ #include    <stdio.h>
  323. X+ #include    <sys/param.h>
  324. X+ #include    <sys/types.h>
  325. X+ #include    <xview/xview.h>
  326. X+ #include    <xview/panel.h>
  327. X+ #include    "contool_ui.h"
  328. X+ 
  329. X+ #include    "manifest.h"
  330. X+ 
  331. X+ PUBLIC    contool_base_objects    *contool_base;
  332. X+ 
  333. X+ PRIVATE    contool_about_objects    *dialog = NULL;
  334. X+ 
  335. X+ /************************************************************************/
  336. X+ EXPORT    Menu_item    popup_about_contool(item, op)
  337. X+ 
  338. X+ Menu_item    item;
  339. X+ Menu_generate    op;
  340. X+ 
  341. X+ {
  342. X+     if (op == MENU_NOTIFY) {
  343. X+        if (dialog == NULL) {
  344. X+           dialog = contool_about_objects_initialize(NULL, contool_base->base);
  345. X+           place_dialog(contool_base->base, dialog->about);
  346. X+           }
  347. X+        xv_set(dialog->about, XV_SHOW, TRUE, NULL);
  348. X+        }
  349. X+     return item;
  350. X+ }
  351. X*** busy.c.orig    Thu Nov  1 15:09:39 1990
  352. X--- busy.c    Tue Oct 23 08:03:24 1990
  353. X***************
  354. X*** 0 ****
  355. X--- 1,65 ----
  356. X+ /************************************************************************/
  357. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  358. X+ /*                                    */
  359. X+ /*    Permission to use, copy, modify, and distribute this software    */
  360. X+ /*    and its documentation for any purpose and without fee is    */
  361. X+ /*    hereby granted, provided that the above copyright notice    */
  362. X+ /*    appear in all copies and that both that copyright notice and    */
  363. X+ /*    this permission notice appear in supporting documentation, and    */
  364. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  365. X+ /*    used in advertising or publicity pertaining to distribution    */
  366. X+ /*    of the software without specific, written prior permission.    */
  367. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  368. X+ /*    about the suitability of this software for any purpose.  It is    */
  369. X+ /*    provided "as is" without express or implied warranty.  This     */
  370. X+ /*    software may not be sold without the prior explicit permission    */
  371. X+ /*    of Harris Corporation.                        */
  372. X+ /************************************************************************/
  373. X+ 
  374. X+ /************************************************************************/
  375. X+ /*                                    */
  376. X+ /*    busy.c    turn frame busy attribute on and off            */
  377. X+ /*                                    */
  378. X+ /************************************************************************/
  379. X+ 
  380. X+ #include    <stdio.h>
  381. X+ #include    <xview/xview.h>
  382. X+ #include    <xview/panel.h>
  383. X+ 
  384. X+ #include    "manifest.h"
  385. X+ 
  386. X+ /************************************************************************/
  387. X+ PRIVATE    set_busy(base, busy, skip)
  388. X+ 
  389. X+ Frame    base;
  390. X+ int    busy;
  391. X+ Frame    skip;
  392. X+ 
  393. X+ {    Frame    subframe;
  394. X+     int    i;
  395. X+ 
  396. X+     for (i = 1; subframe = (Frame) xv_get(base, FRAME_NTH_SUBFRAME, i); i++)
  397. X+        if (subframe != skip)
  398. X+           if (xv_get(subframe, XV_SHOW))
  399. X+              xv_set(subframe, FRAME_BUSY, busy, NULL);
  400. X+     xv_set(base, FRAME_BUSY, busy, NULL);
  401. X+ }
  402. X+ 
  403. X+ /************************************************************************/
  404. X+ EXPORT    lets_get_busy(base, busy, skip)
  405. X+ 
  406. X+ Frame    base;
  407. X+ int    busy;
  408. X+ Frame    skip;
  409. X+ 
  410. X+ {    static    int    depth = 0;
  411. X+ 
  412. X+     if (busy) {
  413. X+        if (depth == 0)
  414. X+           set_busy(base, TRUE, skip);
  415. X+        depth++;
  416. X+        }
  417. X+     else if (depth > 0)
  418. X+        if (--depth == 0)
  419. X+           set_busy(base, FALSE, NULL);
  420. X+ }
  421. X*** contool.c.orig    Thu Nov  1 15:09:40 1990
  422. X--- contool.c    Thu Nov  1 11:46:51 1990
  423. X***************
  424. X*** 176,182 ****
  425. X         else if ((cmd = popen(defaults.print_filter, "w")) == NULL)
  426. X            error("Could not execute %s", defaults.print_filter);
  427. X         else {
  428. X!           xv_set(contool_base->base, FRAME_BUSY, TRUE, NULL);
  429. X            size = (int) xv_get(contool_base->display, TEXTSW_LENGTH);
  430. X            buf = (char *) malloc(size);
  431. X            xv_get(contool_base->display, TEXTSW_CONTENTS, 0, buf, size);
  432. X--- 176,182 ----
  433. X         else if ((cmd = popen(defaults.print_filter, "w")) == NULL)
  434. X            error("Could not execute %s", defaults.print_filter);
  435. X         else {
  436. X!           lets_get_busy(contool_base->base, TRUE, NULL);
  437. X            size = (int) xv_get(contool_base->display, TEXTSW_LENGTH);
  438. X            buf = (char *) malloc(size);
  439. X            xv_get(contool_base->display, TEXTSW_CONTENTS, 0, buf, size);
  440. X***************
  441. X*** 183,189 ****
  442. X            if (fwrite(buf, 1, size, cmd) != size)
  443. X               error("Could not write console contents to printer");
  444. X            pclose(cmd);
  445. X!           xv_set(contool_base->base, FRAME_BUSY, FALSE, NULL);
  446. X            }
  447. X         }
  448. X      return item;
  449. X--- 183,190 ----
  450. X            if (fwrite(buf, 1, size, cmd) != size)
  451. X               error("Could not write console contents to printer");
  452. X            pclose(cmd);
  453. X!           free(buf);
  454. X!           lets_get_busy(contool_base->base, FALSE, NULL);
  455. X            }
  456. X         }
  457. X      return item;
  458. X***************
  459. X*** 258,266 ****
  460. X      if (flash && flash != default_flash_icon)
  461. X         xv_destroy(flash);
  462. X  
  463. X!     good  = (defaults.good_icon  == NULL)? default_good_icon  : load_icon(defaults.good_icon, msg);
  464. X!     bad   = (defaults.bad_icon   == NULL)? default_bad_icon   : load_icon(defaults.bad_icon, msg);
  465. X      flash = (defaults.flash_icon == NULL)? default_flash_icon : load_icon(defaults.flash_icon, msg);
  466. X  
  467. X      if (!blinking)
  468. X         change_icon(good, good == default_good_icon);
  469. X--- 259,279 ----
  470. X      if (flash && flash != default_flash_icon)
  471. X         xv_destroy(flash);
  472. X  
  473. X!     good = (defaults.good_icon == NULL)? default_good_icon : load_icon(defaults.good_icon, msg);
  474. X!     if (good == NULL) {
  475. X!        internal_error("Cannot load default \"All is well\" icon %s: %s", defaults.good_icon, msg);
  476. X!        good = default_good_icon;
  477. X!        }
  478. X!     bad = (defaults.bad_icon == NULL)? default_bad_icon : load_icon(defaults.bad_icon, msg);
  479. X!     if (bad == NULL) {
  480. X!        internal_error("Cannot load default \"Check console\" icon %s: %s", defaults.bad_icon, msg);
  481. X!        bad = default_bad_icon;
  482. X!        }
  483. X      flash = (defaults.flash_icon == NULL)? default_flash_icon : load_icon(defaults.flash_icon, msg);
  484. X+     if (flash == NULL) {
  485. X+        internal_error("Cannot load default \"Flash\" icon %s: %s", defaults.flash_icon, msg);
  486. X+        flash = default_flash_icon;
  487. X+        }
  488. X  
  489. X      if (!blinking)
  490. X         change_icon(good, good == default_good_icon);
  491. X***************
  492. X*** 267,273 ****
  493. X  }
  494. X  
  495. X  /************************************************************************/
  496. X! /*    Now, filter  handlers                        */
  497. X  /************************************************************************/
  498. X  
  499. X  /************************************************************************/
  500. X--- 280,286 ----
  501. X  }
  502. X  
  503. X  /************************************************************************/
  504. X! /*    Now, filter handlers                        */
  505. X  /************************************************************************/
  506. X  
  507. X  /************************************************************************/
  508. X*** contool_ui.c.orig    Thu Nov  1 15:09:42 1990
  509. X--- contool_ui.c    Thu Nov  1 13:47:30 1990
  510. X***************
  511. X*** 33,38 ****
  512. X--- 33,39 ----
  513. X      extern Menu_item    start_logging();
  514. X      extern Menu_item    stop_logging();
  515. X      extern Menu_item    print_messages();
  516. X+     extern Menu_item    popup_about_contool();
  517. X      Xv_opaque    obj;
  518. X      
  519. X      obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  520. X***************
  521. X*** 62,67 ****
  522. X--- 63,73 ----
  523. X              MENU_STRING, "Print",
  524. X              MENU_GEN_PROC, print_messages,
  525. X              NULL,
  526. X+         MENU_ITEM,
  527. X+             XV_KEY_DATA, INSTANCE, ip,
  528. X+             MENU_STRING, "About contool...",
  529. X+             MENU_GEN_PROC, popup_about_contool,
  530. X+             NULL,
  531. X          MENU_DEFAULT, 2,
  532. X          MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "File",
  533. X          NULL);
  534. X***************
  535. X*** 307,313 ****
  536. X          XV_KEY_DATA, INSTANCE, ip,
  537. X          XV_WIDTH, 575,
  538. X          XV_HEIGHT, 246,
  539. X!         XV_LABEL, "Contool 3.0a",
  540. X          FRAME_CLOSED, FALSE,
  541. X          FRAME_SHOW_FOOTER, TRUE,
  542. X          FRAME_SHOW_RESIZE_CORNER, TRUE,
  543. X--- 313,319 ----
  544. X          XV_KEY_DATA, INSTANCE, ip,
  545. X          XV_WIDTH, 575,
  546. X          XV_HEIGHT, 246,
  547. X!         XV_LABEL, "Contool 3.0b",
  548. X          FRAME_CLOSED, FALSE,
  549. X          FRAME_SHOW_FOOTER, TRUE,
  550. X          FRAME_SHOW_RESIZE_CORNER, TRUE,
  551. X***************
  552. X*** 661,667 ****
  553. X      caddr_t        ip;
  554. X      Xv_opaque    owner;
  555. X  {
  556. X!     extern Panel_setting    file_completion();
  557. X      Xv_opaque    obj;
  558. X      
  559. X      obj = xv_create(owner, PANEL_TEXT,
  560. X--- 667,673 ----
  561. X      caddr_t        ip;
  562. X      Xv_opaque    owner;
  563. X  {
  564. X!     extern Panel_setting    filename_completion();
  565. X      Xv_opaque    obj;
  566. X      
  567. X      obj = xv_create(owner, PANEL_TEXT,
  568. X***************
  569. X*** 678,684 ****
  570. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  571. X          PANEL_VALUE_STORED_LENGTH, 256,
  572. X          PANEL_READ_ONLY, FALSE,
  573. X!         PANEL_NOTIFY_PROC, file_completion,
  574. X          NULL);
  575. X      return obj;
  576. X  }
  577. X--- 684,690 ----
  578. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  579. X          PANEL_VALUE_STORED_LENGTH, 256,
  580. X          PANEL_READ_ONLY, FALSE,
  581. X!         PANEL_NOTIFY_PROC, filename_completion,
  582. X          NULL);
  583. X      return obj;
  584. X  }
  585. X***************
  586. X*** 752,758 ****
  587. X      caddr_t        ip;
  588. X      Xv_opaque    owner;
  589. X  {
  590. X!     extern Panel_setting    file_completion();
  591. X      Xv_opaque    obj;
  592. X      
  593. X      obj = xv_create(owner, PANEL_TEXT,
  594. X--- 758,764 ----
  595. X      caddr_t        ip;
  596. X      Xv_opaque    owner;
  597. X  {
  598. X!     extern Panel_setting    filename_completion();
  599. X      Xv_opaque    obj;
  600. X      
  601. X      obj = xv_create(owner, PANEL_TEXT,
  602. X***************
  603. X*** 769,775 ****
  604. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  605. X          PANEL_VALUE_STORED_LENGTH, 256,
  606. X          PANEL_READ_ONLY, FALSE,
  607. X!         PANEL_NOTIFY_PROC, file_completion,
  608. X          NULL);
  609. X      return obj;
  610. X  }
  611. X--- 775,781 ----
  612. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  613. X          PANEL_VALUE_STORED_LENGTH, 256,
  614. X          PANEL_READ_ONLY, FALSE,
  615. X!         PANEL_NOTIFY_PROC, filename_completion,
  616. X          NULL);
  617. X      return obj;
  618. X  }
  619. X***************
  620. X*** 783,789 ****
  621. X      caddr_t        ip;
  622. X      Xv_opaque    owner;
  623. X  {
  624. X!     extern Panel_setting    file_completion();
  625. X      Xv_opaque    obj;
  626. X      
  627. X      obj = xv_create(owner, PANEL_TEXT,
  628. X--- 789,795 ----
  629. X      caddr_t        ip;
  630. X      Xv_opaque    owner;
  631. X  {
  632. X!     extern Panel_setting    filename_completion();
  633. X      Xv_opaque    obj;
  634. X      
  635. X      obj = xv_create(owner, PANEL_TEXT,
  636. X***************
  637. X*** 800,806 ****
  638. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  639. X          PANEL_VALUE_STORED_LENGTH, 256,
  640. X          PANEL_READ_ONLY, FALSE,
  641. X!         PANEL_NOTIFY_PROC, file_completion,
  642. X          NULL);
  643. X      return obj;
  644. X  }
  645. X--- 806,812 ----
  646. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  647. X          PANEL_VALUE_STORED_LENGTH, 256,
  648. X          PANEL_READ_ONLY, FALSE,
  649. X!         PANEL_NOTIFY_PROC, filename_completion,
  650. X          NULL);
  651. X      return obj;
  652. X  }
  653. X***************
  654. X*** 814,820 ****
  655. X      caddr_t        ip;
  656. X      Xv_opaque    owner;
  657. X  {
  658. X!     extern Panel_setting    file_completion();
  659. X      Xv_opaque    obj;
  660. X      
  661. X      obj = xv_create(owner, PANEL_TEXT,
  662. X--- 820,826 ----
  663. X      caddr_t        ip;
  664. X      Xv_opaque    owner;
  665. X  {
  666. X!     extern Panel_setting    filename_completion();
  667. X      Xv_opaque    obj;
  668. X      
  669. X      obj = xv_create(owner, PANEL_TEXT,
  670. X***************
  671. X*** 831,837 ****
  672. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  673. X          PANEL_VALUE_STORED_LENGTH, 256,
  674. X          PANEL_READ_ONLY, FALSE,
  675. X!         PANEL_NOTIFY_PROC, file_completion,
  676. X          NULL);
  677. X      return obj;
  678. X  }
  679. X--- 837,843 ----
  680. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  681. X          PANEL_VALUE_STORED_LENGTH, 256,
  682. X          PANEL_READ_ONLY, FALSE,
  683. X!         PANEL_NOTIFY_PROC, filename_completion,
  684. X          NULL);
  685. X      return obj;
  686. X  }
  687. X***************
  688. X*** 1683,1689 ****
  689. X      caddr_t        ip;
  690. X      Xv_opaque    owner;
  691. X  {
  692. X!     extern Panel_setting    file_completion();
  693. X      Xv_opaque    obj;
  694. X      
  695. X      obj = xv_create(owner, PANEL_TEXT,
  696. X--- 1689,1695 ----
  697. X      caddr_t        ip;
  698. X      Xv_opaque    owner;
  699. X  {
  700. X!     extern Panel_setting    filename_completion();
  701. X      Xv_opaque    obj;
  702. X      
  703. X      obj = xv_create(owner, PANEL_TEXT,
  704. X***************
  705. X*** 1700,1706 ****
  706. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  707. X          PANEL_VALUE_STORED_LENGTH, 256,
  708. X          PANEL_READ_ONLY, FALSE,
  709. X!         PANEL_NOTIFY_PROC, file_completion,
  710. X          NULL);
  711. X      return obj;
  712. X  }
  713. X--- 1706,1712 ----
  714. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  715. X          PANEL_VALUE_STORED_LENGTH, 256,
  716. X          PANEL_READ_ONLY, FALSE,
  717. X!         PANEL_NOTIFY_PROC, filename_completion,
  718. X          NULL);
  719. X      return obj;
  720. X  }
  721. X***************
  722. X*** 1841,1847 ****
  723. X      caddr_t        ip;
  724. X      Xv_opaque    owner;
  725. X  {
  726. X!     extern Panel_setting    file_completion();
  727. X      Xv_opaque    obj;
  728. X      
  729. X      obj = xv_create(owner, PANEL_TEXT,
  730. X--- 1847,1853 ----
  731. X      caddr_t        ip;
  732. X      Xv_opaque    owner;
  733. X  {
  734. X!     extern Panel_setting    filename_completion();
  735. X      Xv_opaque    obj;
  736. X      
  737. X      obj = xv_create(owner, PANEL_TEXT,
  738. X***************
  739. X*** 1858,1864 ****
  740. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  741. X          PANEL_VALUE_STORED_LENGTH, 256,
  742. X          PANEL_READ_ONLY, FALSE,
  743. X!         PANEL_NOTIFY_PROC, file_completion,
  744. X          NULL);
  745. X      return obj;
  746. X  }
  747. X--- 1864,1870 ----
  748. X          PANEL_VALUE_DISPLAY_LENGTH, 35,
  749. X          PANEL_VALUE_STORED_LENGTH, 256,
  750. X          PANEL_READ_ONLY, FALSE,
  751. X!         PANEL_NOTIFY_PROC, filename_completion,
  752. X          NULL);
  753. X      return obj;
  754. X  }
  755. X***************
  756. X*** 1884,1889 ****
  757. X--- 1890,2715 ----
  758. X          XV_HEIGHT, 20,
  759. X          PANEL_LABEL_STRING, "Store",
  760. X          PANEL_NOTIFY_PROC, store_filters,
  761. X+         NULL);
  762. X+     return obj;
  763. X+ }
  764. X+ 
  765. X+ /*
  766. X+  * Initialize an instance of object `about'.
  767. X+  */
  768. X+ contool_about_objects *
  769. X+ contool_about_objects_initialize(ip, owner)
  770. X+     contool_about_objects    *ip;
  771. X+     Xv_opaque    owner;
  772. X+ {
  773. X+     if (!ip && !(ip = (contool_about_objects *) calloc(1, sizeof (contool_about_objects))))
  774. X+         return (contool_about_objects *) NULL;
  775. X+     if (!ip->about)
  776. X+         ip->about = contool_about_about_create(ip, owner);
  777. X+     if (!ip->about_controls)
  778. X+         ip->about_controls = contool_about_about_controls_create(ip, ip->about);
  779. X+     if (!ip->message1)
  780. X+         ip->message1 = contool_about_message1_create(ip, ip->about_controls);
  781. X+     if (!ip->message5)
  782. X+         ip->message5 = contool_about_message5_create(ip, ip->about_controls);
  783. X+     if (!ip->message6)
  784. X+         ip->message6 = contool_about_message6_create(ip, ip->about_controls);
  785. X+     if (!ip->message7)
  786. X+         ip->message7 = contool_about_message7_create(ip, ip->about_controls);
  787. X+     if (!ip->message8)
  788. X+         ip->message8 = contool_about_message8_create(ip, ip->about_controls);
  789. X+     if (!ip->message9)
  790. X+         ip->message9 = contool_about_message9_create(ip, ip->about_controls);
  791. X+     if (!ip->message10)
  792. X+         ip->message10 = contool_about_message10_create(ip, ip->about_controls);
  793. X+     if (!ip->message15)
  794. X+         ip->message15 = contool_about_message15_create(ip, ip->about_controls);
  795. X+     if (!ip->message11)
  796. X+         ip->message11 = contool_about_message11_create(ip, ip->about_controls);
  797. X+     if (!ip->message12)
  798. X+         ip->message12 = contool_about_message12_create(ip, ip->about_controls);
  799. X+     if (!ip->message13)
  800. X+         ip->message13 = contool_about_message13_create(ip, ip->about_controls);
  801. X+     if (!ip->message14)
  802. X+         ip->message14 = contool_about_message14_create(ip, ip->about_controls);
  803. X+     if (!ip->message16)
  804. X+         ip->message16 = contool_about_message16_create(ip, ip->about_controls);
  805. X+     if (!ip->message17)
  806. X+         ip->message17 = contool_about_message17_create(ip, ip->about_controls);
  807. X+     if (!ip->message18)
  808. X+         ip->message18 = contool_about_message18_create(ip, ip->about_controls);
  809. X+     if (!ip->message19)
  810. X+         ip->message19 = contool_about_message19_create(ip, ip->about_controls);
  811. X+     if (!ip->message20)
  812. X+         ip->message20 = contool_about_message20_create(ip, ip->about_controls);
  813. X+     if (!ip->send_mail)
  814. X+         ip->send_mail = contool_about_send_mail_create(ip, ip->about_controls);
  815. X+     return ip;
  816. X+ }
  817. X+ 
  818. X+ /*
  819. X+  * Create object `about' in the specified instance.
  820. X+ 
  821. X+  */
  822. X+ Xv_opaque
  823. X+ contool_about_about_create(ip, owner)
  824. X+     caddr_t        ip;
  825. X+     Xv_opaque    owner;
  826. X+ {
  827. X+     Xv_opaque    obj;
  828. X+     
  829. X+     obj = xv_create(owner, FRAME_CMD,
  830. X+         XV_KEY_DATA, INSTANCE, ip,
  831. X+         XV_WIDTH, 509,
  832. X+         XV_HEIGHT, 392,
  833. X+         XV_LABEL, "Contool: About contool",
  834. X+         XV_SHOW, FALSE,
  835. X+         FRAME_SHOW_FOOTER, FALSE,
  836. X+         FRAME_SHOW_RESIZE_CORNER, FALSE,
  837. X+         FRAME_CMD_PUSHPIN_IN, TRUE,
  838. X+         NULL);
  839. X+     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  840. X+     return obj;
  841. X+ }
  842. X+ 
  843. X+ /*
  844. X+  * Create object `about_controls' in the specified instance.
  845. X+ 
  846. X+  */
  847. X+ Xv_opaque
  848. X+ contool_about_about_controls_create(ip, owner)
  849. X+     caddr_t        ip;
  850. X+     Xv_opaque    owner;
  851. X+ {
  852. X+     Xv_opaque    obj;
  853. X+     
  854. X+     obj = xv_create(owner, PANEL,
  855. X+         XV_KEY_DATA, INSTANCE, ip,
  856. X+         XV_HELP_DATA, "contool:about_controls",
  857. X+         XV_X, 0,
  858. X+         XV_Y, 0,
  859. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  860. X+         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  861. X+         WIN_BORDER, FALSE,
  862. X+         NULL);
  863. X+     return obj;
  864. X+ }
  865. X+ 
  866. X+ /*
  867. X+  * Create object `message1' in the specified instance.
  868. X+ 
  869. X+  */
  870. X+ Xv_opaque
  871. X+ contool_about_message1_create(ip, owner)
  872. X+     caddr_t        ip;
  873. X+     Xv_opaque    owner;
  874. X+ {
  875. X+     Xv_opaque    obj;
  876. X+     
  877. X+     obj = xv_create(owner, PANEL_MESSAGE,
  878. X+         XV_KEY_DATA, INSTANCE, ip,
  879. X+         XV_HELP_DATA, "contool:message1",
  880. X+         XV_X, 210,
  881. X+         XV_Y, 14,
  882. X+         XV_WIDTH, 85,
  883. X+         XV_HEIGHT, 13,
  884. X+         PANEL_LABEL_STRING, "Contool 3.0b",
  885. X+         PANEL_LABEL_BOLD, TRUE,
  886. X+         NULL);
  887. X+     return obj;
  888. X+ }
  889. X+ 
  890. X+ /*
  891. X+  * Create object `message5' in the specified instance.
  892. X+ 
  893. X+  */
  894. X+ Xv_opaque
  895. X+ contool_about_message5_create(ip, owner)
  896. X+     caddr_t        ip;
  897. X+     Xv_opaque    owner;
  898. X+ {
  899. X+     Xv_opaque    obj;
  900. X+     
  901. X+     obj = xv_create(owner, PANEL_MESSAGE,
  902. X+         XV_KEY_DATA, INSTANCE, ip,
  903. X+         XV_HELP_DATA, "contool:message5",
  904. X+         XV_X, 177,
  905. X+         XV_Y, 30,
  906. X+         XV_WIDTH, 152,
  907. X+         XV_HEIGHT, 13,
  908. X+         PANEL_LABEL_STRING, "Copyright 1988 - 1990",
  909. X+         PANEL_LABEL_BOLD, TRUE,
  910. X+         NULL);
  911. X+     return obj;
  912. X+ }
  913. X+ 
  914. X+ /*
  915. X+  * Create object `message6' in the specified instance.
  916. X+ 
  917. X+  */
  918. X+ Xv_opaque
  919. X+ contool_about_message6_create(ip, owner)
  920. X+     caddr_t        ip;
  921. X+     Xv_opaque    owner;
  922. X+ {
  923. X+     Xv_opaque    obj;
  924. X+     
  925. X+     obj = xv_create(owner, PANEL_MESSAGE,
  926. X+         XV_KEY_DATA, INSTANCE, ip,
  927. X+         XV_HELP_DATA, "contool:message6",
  928. X+         XV_X, 117,
  929. X+         XV_Y, 46,
  930. X+         XV_WIDTH, 274,
  931. X+         XV_HEIGHT, 13,
  932. X+         PANEL_LABEL_STRING, "Chuck Musciano and Harris Corporation",
  933. X+         PANEL_LABEL_BOLD, TRUE,
  934. X+         NULL);
  935. X+     return obj;
  936. X+ }
  937. X+ 
  938. X+ /*
  939. X+  * Create object `message7' in the specified instance.
  940. X+ 
  941. X+  */
  942. X+ Xv_opaque
  943. X+ contool_about_message7_create(ip, owner)
  944. X+     caddr_t        ip;
  945. X+     Xv_opaque    owner;
  946. X+ {
  947. X+     Xv_opaque    obj;
  948. X+     
  949. X+     obj = xv_create(owner, PANEL_MESSAGE,
  950. X+         XV_KEY_DATA, INSTANCE, ip,
  951. X+         XV_HELP_DATA, "contool:message7",
  952. X+         XV_X, 185,
  953. X+         XV_Y, 62,
  954. X+         XV_WIDTH, 135,
  955. X+         XV_HEIGHT, 13,
  956. X+         PANEL_LABEL_STRING, "All Rights Reserved",
  957. X+         PANEL_LABEL_BOLD, TRUE,
  958. X+         NULL);
  959. X+     return obj;
  960. X+ }
  961. X+ 
  962. X+ /*
  963. X+  * Create object `message8' in the specified instance.
  964. X+ 
  965. X+  */
  966. X+ Xv_opaque
  967. X+ contool_about_message8_create(ip, owner)
  968. X+     caddr_t        ip;
  969. X+     Xv_opaque    owner;
  970. X+ {
  971. X+     Xv_opaque    obj;
  972. X+     
  973. X+     obj = xv_create(owner, PANEL_MESSAGE,
  974. X+         XV_KEY_DATA, INSTANCE, ip,
  975. X+         XV_HELP_DATA, "contool:message8",
  976. X+         XV_X, 14,
  977. X+         XV_Y, 94,
  978. X+         XV_WIDTH, 457,
  979. X+         XV_HEIGHT, 13,
  980. X+         PANEL_LABEL_STRING, "Contool was written using Sun's Devguide interface builder and the XView",
  981. X+         PANEL_LABEL_BOLD, FALSE,
  982. X+         NULL);
  983. X+     return obj;
  984. X+ }
  985. X+ 
  986. X+ /*
  987. X+  * Create object `message9' in the specified instance.
  988. X+ 
  989. X+  */
  990. X+ Xv_opaque
  991. X+ contool_about_message9_create(ip, owner)
  992. X+     caddr_t        ip;
  993. X+     Xv_opaque    owner;
  994. X+ {
  995. X+     Xv_opaque    obj;
  996. X+     
  997. X+     obj = xv_create(owner, PANEL_MESSAGE,
  998. X+         XV_KEY_DATA, INSTANCE, ip,
  999. X+         XV_HELP_DATA, "contool:message9",
  1000. X+         XV_X, 14,
  1001. X+         XV_Y, 110,
  1002. X+         XV_WIDTH, 447,
  1003. X+         XV_HEIGHT, 13,
  1004. X+         PANEL_LABEL_STRING, "OPEN LOOK toolkit.  It originated as a SunView application in early 1987,",
  1005. X+         PANEL_LABEL_BOLD, FALSE,
  1006. X+         NULL);
  1007. X+     return obj;
  1008. X+ }
  1009. X+ 
  1010. X+ /*
  1011. X+  * Create object `message10' in the specified instance.
  1012. X+ 
  1013. X+  */
  1014. X+ Xv_opaque
  1015. X+ contool_about_message10_create(ip, owner)
  1016. X+     caddr_t        ip;
  1017. X+     Xv_opaque    owner;
  1018. X+ {
  1019. X+     Xv_opaque    obj;
  1020. X+     
  1021. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1022. X+         XV_KEY_DATA, INSTANCE, ip,
  1023. X+         XV_HELP_DATA, "contool:message10",
  1024. X+         XV_X, 14,
  1025. X+         XV_Y, 126,
  1026. X+         XV_WIDTH, 464,
  1027. X+         XV_HEIGHT, 13,
  1028. X+         PANEL_LABEL_STRING, "was released into the public domain in 1988, and was ported to X Windows",
  1029. X+         PANEL_LABEL_BOLD, FALSE,
  1030. X+         NULL);
  1031. X+     return obj;
  1032. X+ }
  1033. X+ 
  1034. X+ /*
  1035. X+  * Create object `message15' in the specified instance.
  1036. X+ 
  1037. X+  */
  1038. X+ Xv_opaque
  1039. X+ contool_about_message15_create(ip, owner)
  1040. X+     caddr_t        ip;
  1041. X+     Xv_opaque    owner;
  1042. X+ {
  1043. X+     Xv_opaque    obj;
  1044. X+     
  1045. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1046. X+         XV_KEY_DATA, INSTANCE, ip,
  1047. X+         XV_HELP_DATA, "contool:message15",
  1048. X+         XV_X, 14,
  1049. X+         XV_Y, 142,
  1050. X+         XV_WIDTH, 51,
  1051. X+         XV_HEIGHT, 13,
  1052. X+         PANEL_LABEL_STRING, "in 1990.",
  1053. X+         PANEL_LABEL_BOLD, FALSE,
  1054. X+         NULL);
  1055. X+     return obj;
  1056. X+ }
  1057. X+ 
  1058. X+ /*
  1059. X+  * Create object `message11' in the specified instance.
  1060. X+ 
  1061. X+  */
  1062. X+ Xv_opaque
  1063. X+ contool_about_message11_create(ip, owner)
  1064. X+     caddr_t        ip;
  1065. X+     Xv_opaque    owner;
  1066. X+ {
  1067. X+     Xv_opaque    obj;
  1068. X+     
  1069. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1070. X+         XV_KEY_DATA, INSTANCE, ip,
  1071. X+         XV_HELP_DATA, "contool:message11",
  1072. X+         XV_X, 14,
  1073. X+         XV_Y, 174,
  1074. X+         XV_WIDTH, 460,
  1075. X+         XV_HEIGHT, 13,
  1076. X+         PANEL_LABEL_STRING, "I welcome comments, criticism, suggestions, and bug reports.  Almost every",
  1077. X+         PANEL_LABEL_BOLD, FALSE,
  1078. X+         NULL);
  1079. X+     return obj;
  1080. X+ }
  1081. X+ 
  1082. X+ /*
  1083. X+  * Create object `message12' in the specified instance.
  1084. X+ 
  1085. X+  */
  1086. X+ Xv_opaque
  1087. X+ contool_about_message12_create(ip, owner)
  1088. X+     caddr_t        ip;
  1089. X+     Xv_opaque    owner;
  1090. X+ {
  1091. X+     Xv_opaque    obj;
  1092. X+     
  1093. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1094. X+         XV_KEY_DATA, INSTANCE, ip,
  1095. X+         XV_HELP_DATA, "contool:message12",
  1096. X+         XV_X, 14,
  1097. X+         XV_Y, 190,
  1098. X+         XV_WIDTH, 462,
  1099. X+         XV_HEIGHT, 13,
  1100. X+         PANEL_LABEL_STRING, "feature in this version of contool was added as the result of a user request. ",
  1101. X+         PANEL_LABEL_BOLD, FALSE,
  1102. X+         NULL);
  1103. X+     return obj;
  1104. X+ }
  1105. X+ 
  1106. X+ /*
  1107. X+  * Create object `message13' in the specified instance.
  1108. X+ 
  1109. X+  */
  1110. X+ Xv_opaque
  1111. X+ contool_about_message13_create(ip, owner)
  1112. X+     caddr_t        ip;
  1113. X+     Xv_opaque    owner;
  1114. X+ {
  1115. X+     Xv_opaque    obj;
  1116. X+     
  1117. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1118. X+         XV_KEY_DATA, INSTANCE, ip,
  1119. X+         XV_HELP_DATA, "contool:message13",
  1120. X+         XV_X, 14,
  1121. X+         XV_Y, 206,
  1122. X+         XV_WIDTH, 467,
  1123. X+         XV_HEIGHT, 13,
  1124. X+         PANEL_LABEL_STRING, "User feedback is the single best driving force in the evolution of my tools.  I ",
  1125. X+         PANEL_LABEL_BOLD, FALSE,
  1126. X+         NULL);
  1127. X+     return obj;
  1128. X+ }
  1129. X+ 
  1130. X+ /*
  1131. X+  * Create object `message14' in the specified instance.
  1132. X+ 
  1133. X+  */
  1134. X+ Xv_opaque
  1135. X+ contool_about_message14_create(ip, owner)
  1136. X+     caddr_t        ip;
  1137. X+     Xv_opaque    owner;
  1138. X+ {
  1139. X+     Xv_opaque    obj;
  1140. X+     
  1141. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1142. X+         XV_KEY_DATA, INSTANCE, ip,
  1143. X+         XV_HELP_DATA, "contool:message14",
  1144. X+         XV_X, 14,
  1145. X+         XV_Y, 222,
  1146. X+         XV_WIDTH, 205,
  1147. X+         XV_HEIGHT, 13,
  1148. X+         PANEL_LABEL_STRING, "look forward to hearing from you!",
  1149. X+         PANEL_LABEL_BOLD, FALSE,
  1150. X+         NULL);
  1151. X+     return obj;
  1152. X+ }
  1153. X+ 
  1154. X+ /*
  1155. X+  * Create object `message16' in the specified instance.
  1156. X+ 
  1157. X+  */
  1158. X+ Xv_opaque
  1159. X+ contool_about_message16_create(ip, owner)
  1160. X+     caddr_t        ip;
  1161. X+     Xv_opaque    owner;
  1162. X+ {
  1163. X+     Xv_opaque    obj;
  1164. X+     
  1165. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1166. X+         XV_KEY_DATA, INSTANCE, ip,
  1167. X+         XV_HELP_DATA, "contool:message16",
  1168. X+         XV_X, 14,
  1169. X+         XV_Y, 254,
  1170. X+         XV_WIDTH, 481,
  1171. X+         XV_HEIGHT, 13,
  1172. X+         PANEL_LABEL_STRING, "Contool has been placed in the public domain, but the copyright on the source",
  1173. X+         PANEL_LABEL_BOLD, FALSE,
  1174. X+         NULL);
  1175. X+     return obj;
  1176. X+ }
  1177. X+ 
  1178. X+ /*
  1179. X+  * Create object `message17' in the specified instance.
  1180. X+ 
  1181. X+  */
  1182. X+ Xv_opaque
  1183. X+ contool_about_message17_create(ip, owner)
  1184. X+     caddr_t        ip;
  1185. X+     Xv_opaque    owner;
  1186. X+ {
  1187. X+     Xv_opaque    obj;
  1188. X+     
  1189. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1190. X+         XV_KEY_DATA, INSTANCE, ip,
  1191. X+         XV_HELP_DATA, "contool:message17",
  1192. X+         XV_X, 14,
  1193. X+         XV_Y, 270,
  1194. X+         XV_WIDTH, 472,
  1195. X+         XV_HEIGHT, 13,
  1196. X+         PANEL_LABEL_STRING, "code is retained by myself and Harris Corporation, my employer.  This means",
  1197. X+         PANEL_LABEL_BOLD, FALSE,
  1198. X+         NULL);
  1199. X+     return obj;
  1200. X+ }
  1201. X+ 
  1202. X+ /*
  1203. X+  * Create object `message18' in the specified instance.
  1204. X+ 
  1205. X+  */
  1206. X+ Xv_opaque
  1207. X+ contool_about_message18_create(ip, owner)
  1208. X+     caddr_t        ip;
  1209. X+     Xv_opaque    owner;
  1210. X+ {
  1211. X+     Xv_opaque    obj;
  1212. X+     
  1213. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1214. X+         XV_KEY_DATA, INSTANCE, ip,
  1215. X+         XV_HELP_DATA, "contool:message18",
  1216. X+         XV_X, 14,
  1217. X+         XV_Y, 286,
  1218. X+         XV_WIDTH, 460,
  1219. X+         XV_HEIGHT, 13,
  1220. X+         PANEL_LABEL_STRING, "that you can give the source code to anyone but you cannot sell any part of",
  1221. X+         PANEL_LABEL_BOLD, FALSE,
  1222. X+         NULL);
  1223. X+     return obj;
  1224. X+ }
  1225. X+ 
  1226. X+ /*
  1227. X+  * Create object `message19' in the specified instance.
  1228. X+ 
  1229. X+  */
  1230. X+ Xv_opaque
  1231. X+ contool_about_message19_create(ip, owner)
  1232. X+     caddr_t        ip;
  1233. X+     Xv_opaque    owner;
  1234. X+ {
  1235. X+     Xv_opaque    obj;
  1236. X+     
  1237. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1238. X+         XV_KEY_DATA, INSTANCE, ip,
  1239. X+         XV_HELP_DATA, "contool:message19",
  1240. X+         XV_X, 14,
  1241. X+         XV_Y, 302,
  1242. X+         XV_WIDTH, 455,
  1243. X+         XV_HEIGHT, 13,
  1244. X+         PANEL_LABEL_STRING, "the source code, nor can you incorporate any part of the source code into a",
  1245. X+         PANEL_LABEL_BOLD, FALSE,
  1246. X+         NULL);
  1247. X+     return obj;
  1248. X+ }
  1249. X+ 
  1250. X+ /*
  1251. X+  * Create object `message20' in the specified instance.
  1252. X+ 
  1253. X+  */
  1254. X+ Xv_opaque
  1255. X+ contool_about_message20_create(ip, owner)
  1256. X+     caddr_t        ip;
  1257. X+     Xv_opaque    owner;
  1258. X+ {
  1259. X+     Xv_opaque    obj;
  1260. X+     
  1261. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1262. X+         XV_KEY_DATA, INSTANCE, ip,
  1263. X+         XV_HELP_DATA, "contool:message20",
  1264. X+         XV_X, 14,
  1265. X+         XV_Y, 318,
  1266. X+         XV_WIDTH, 219,
  1267. X+         XV_HEIGHT, 13,
  1268. X+         PANEL_LABEL_STRING, "product which is subsequently sold.",
  1269. X+         PANEL_LABEL_BOLD, FALSE,
  1270. X+         NULL);
  1271. X+     return obj;
  1272. X+ }
  1273. X+ 
  1274. X+ /*
  1275. X+  * Create object `send_mail' in the specified instance.
  1276. X+ 
  1277. X+  */
  1278. X+ Xv_opaque
  1279. X+ contool_about_send_mail_create(ip, owner)
  1280. X+     caddr_t        ip;
  1281. X+     Xv_opaque    owner;
  1282. X+ {
  1283. X+     extern void        popup_send_mail();
  1284. X+     Xv_opaque    obj;
  1285. X+     
  1286. X+     obj = xv_create(owner, PANEL_BUTTON,
  1287. X+         XV_KEY_DATA, INSTANCE, ip,
  1288. X+         XV_HELP_DATA, "contool:send_mail",
  1289. X+         XV_X, 215,
  1290. X+         XV_Y, 352,
  1291. X+         XV_WIDTH, 78,
  1292. X+         XV_HEIGHT, 20,
  1293. X+         PANEL_LABEL_STRING, "Send Mail",
  1294. X+         PANEL_NOTIFY_PROC, popup_send_mail,
  1295. X+         NULL);
  1296. X+     return obj;
  1297. X+ }
  1298. X+ 
  1299. X+ /*
  1300. X+  * Initialize an instance of object `mail'.
  1301. X+  */
  1302. X+ contool_mail_objects *
  1303. X+ contool_mail_objects_initialize(ip, owner)
  1304. X+     contool_mail_objects    *ip;
  1305. X+     Xv_opaque    owner;
  1306. X+ {
  1307. X+     if (!ip && !(ip = (contool_mail_objects *) calloc(1, sizeof (contool_mail_objects))))
  1308. X+         return (contool_mail_objects *) NULL;
  1309. X+     if (!ip->mail)
  1310. X+         ip->mail = contool_mail_mail_create(ip, owner);
  1311. X+     if (!ip->mail_controls)
  1312. X+         ip->mail_controls = contool_mail_mail_controls_create(ip, ip->mail);
  1313. X+     if (!ip->message21)
  1314. X+         ip->message21 = contool_mail_message21_create(ip, ip->mail_controls);
  1315. X+     if (!ip->message22)
  1316. X+         ip->message22 = contool_mail_message22_create(ip, ip->mail_controls);
  1317. X+     if (!ip->address)
  1318. X+         ip->address = contool_mail_address_create(ip, ip->mail_controls);
  1319. X+     if (!ip->other_address)
  1320. X+         ip->other_address = contool_mail_other_address_create(ip, ip->mail_controls);
  1321. X+     if (!ip->message)
  1322. X+         ip->message = contool_mail_message_create(ip, ip->mail);
  1323. X+     if (!ip->mail_controls1)
  1324. X+         ip->mail_controls1 = contool_mail_mail_controls1_create(ip, ip->mail);
  1325. X+     if (!ip->accept_send)
  1326. X+         ip->accept_send = contool_mail_accept_send_create(ip, ip->mail_controls1);
  1327. X+     if (!ip->cancel_mail)
  1328. X+         ip->cancel_mail = contool_mail_cancel_mail_create(ip, ip->mail_controls1);
  1329. X+     return ip;
  1330. X+ }
  1331. X+ 
  1332. X+ /*
  1333. X+  * Create object `mail' in the specified instance.
  1334. X+ 
  1335. X+  */
  1336. X+ Xv_opaque
  1337. X+ contool_mail_mail_create(ip, owner)
  1338. X+     caddr_t        ip;
  1339. X+     Xv_opaque    owner;
  1340. X+ {
  1341. X+     Xv_opaque    obj;
  1342. X+     
  1343. X+     obj = xv_create(owner, FRAME_CMD,
  1344. X+         XV_KEY_DATA, INSTANCE, ip,
  1345. X+         XV_WIDTH, 506,
  1346. X+         XV_HEIGHT, 338,
  1347. X+         XV_LABEL, "Contool: Send mail",
  1348. X+         XV_SHOW, FALSE,
  1349. X+         FRAME_SHOW_FOOTER, FALSE,
  1350. X+         FRAME_SHOW_RESIZE_CORNER, FALSE,
  1351. X+         FRAME_CMD_PUSHPIN_IN, FALSE,
  1352. X+         NULL);
  1353. X+     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  1354. X+     return obj;
  1355. X+ }
  1356. X+ 
  1357. X+ /*
  1358. X+  * Create object `mail_controls' in the specified instance.
  1359. X+ 
  1360. X+  */
  1361. X+ Xv_opaque
  1362. X+ contool_mail_mail_controls_create(ip, owner)
  1363. X+     caddr_t        ip;
  1364. X+     Xv_opaque    owner;
  1365. X+ {
  1366. X+     Xv_opaque    obj;
  1367. X+     
  1368. X+     obj = xv_create(owner, PANEL,
  1369. X+         XV_KEY_DATA, INSTANCE, ip,
  1370. X+         XV_HELP_DATA, "contool:mail_controls",
  1371. X+         XV_X, 0,
  1372. X+         XV_Y, 0,
  1373. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1374. X+         XV_HEIGHT, 92,
  1375. X+         WIN_BORDER, FALSE,
  1376. X+         NULL);
  1377. X+     return obj;
  1378. X+ }
  1379. X+ 
  1380. X+ /*
  1381. X+  * Create object `message21' in the specified instance.
  1382. X+ 
  1383. X+  */
  1384. X+ Xv_opaque
  1385. X+ contool_mail_message21_create(ip, owner)
  1386. X+     caddr_t        ip;
  1387. X+     Xv_opaque    owner;
  1388. X+ {
  1389. X+     Xv_opaque    obj;
  1390. X+     
  1391. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1392. X+         XV_KEY_DATA, INSTANCE, ip,
  1393. X+         XV_HELP_DATA, "contool:message21",
  1394. X+         XV_X, 14,
  1395. X+         XV_Y, 14,
  1396. X+         XV_WIDTH, 478,
  1397. X+         XV_HEIGHT, 13,
  1398. X+         PANEL_LABEL_STRING, "Your feedback is appreciated.  To ensure that your message reaches me, check",
  1399. X+         PANEL_LABEL_BOLD, FALSE,
  1400. X+         NULL);
  1401. X+     return obj;
  1402. X+ }
  1403. X+ 
  1404. X+ /*
  1405. X+  * Create object `message22' in the specified instance.
  1406. X+ 
  1407. X+  */
  1408. X+ Xv_opaque
  1409. X+ contool_mail_message22_create(ip, owner)
  1410. X+     caddr_t        ip;
  1411. X+     Xv_opaque    owner;
  1412. X+ {
  1413. X+     Xv_opaque    obj;
  1414. X+     
  1415. X+     obj = xv_create(owner, PANEL_MESSAGE,
  1416. X+         XV_KEY_DATA, INSTANCE, ip,
  1417. X+         XV_HELP_DATA, "contool:message22",
  1418. X+         XV_X, 14,
  1419. X+         XV_Y, 30,
  1420. X+         XV_WIDTH, 395,
  1421. X+         XV_HEIGHT, 13,
  1422. X+         PANEL_LABEL_STRING, "that the \"To\" address is valid for your site before clicking \"Send\".",
  1423. X+         PANEL_LABEL_BOLD, FALSE,
  1424. X+         NULL);
  1425. X+     return obj;
  1426. X+ }
  1427. X+ 
  1428. X+ /*
  1429. X+  * Create object `address' in the specified instance.
  1430. X+ 
  1431. X+  */
  1432. X+ Xv_opaque
  1433. X+ contool_mail_address_create(ip, owner)
  1434. X+     caddr_t        ip;
  1435. X+     Xv_opaque    owner;
  1436. X+ {
  1437. X+     extern int        handle_address();
  1438. X+     Xv_opaque    obj;
  1439. X+     
  1440. X+     obj = xv_create(owner, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT,
  1441. X+         XV_KEY_DATA, INSTANCE, ip,
  1442. X+         XV_HELP_DATA, "contool:address",
  1443. X+         XV_X, 14,
  1444. X+         XV_Y, 64,
  1445. X+         XV_WIDTH, 278,
  1446. X+         XV_HEIGHT, 23,
  1447. X+         PANEL_VALUE_X, 43,
  1448. X+         PANEL_VALUE_Y, 64,
  1449. X+         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1450. X+         PANEL_CHOICE_NROWS, 1,
  1451. X+         PANEL_LABEL_STRING, "To:",
  1452. X+         PANEL_NOTIFY_PROC, handle_address,
  1453. X+         PANEL_CHOICE_STRINGS,
  1454. X+             "chuck@trantor.harris-atd.com",
  1455. X+             "uunet!trantor.harris-atd.com!chuck",
  1456. X+             "Other:",
  1457. X+             0,
  1458. X+         NULL);
  1459. X+     return obj;
  1460. X+ }
  1461. X+ 
  1462. X+ /*
  1463. X+  * Create object `other_address' in the specified instance.
  1464. X+ 
  1465. X+  */
  1466. X+ Xv_opaque
  1467. X+ contool_mail_other_address_create(ip, owner)
  1468. X+     caddr_t        ip;
  1469. X+     Xv_opaque    owner;
  1470. X+ {
  1471. X+     Xv_opaque    obj;
  1472. X+     
  1473. X+     obj = xv_create(owner, PANEL_TEXT,
  1474. X+         XV_KEY_DATA, INSTANCE, ip,
  1475. X+         XV_HELP_DATA, "contool:other_address",
  1476. X+         XV_X, 105,
  1477. X+         XV_Y, 69,
  1478. X+         XV_WIDTH, 385,
  1479. X+         XV_HEIGHT, 15,
  1480. X+         PANEL_VALUE_X, 114,
  1481. X+         PANEL_VALUE_Y, 69,
  1482. X+         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1483. X+         PANEL_VALUE_DISPLAY_LENGTH, 47,
  1484. X+         PANEL_VALUE_STORED_LENGTH, 256,
  1485. X+         PANEL_READ_ONLY, FALSE,
  1486. X+         NULL);
  1487. X+     return obj;
  1488. X+ }
  1489. X+ 
  1490. X+ /*
  1491. X+  * Create object `message' in the specified instance.
  1492. X+ 
  1493. X+  */
  1494. X+ Xv_opaque
  1495. X+ contool_mail_message_create(ip, owner)
  1496. X+     caddr_t        ip;
  1497. X+     Xv_opaque    owner;
  1498. X+ {
  1499. X+     Xv_opaque    obj;
  1500. X+     
  1501. X+     obj = xv_create(owner, TEXTSW,
  1502. X+         XV_KEY_DATA, INSTANCE, ip,
  1503. X+         XV_X, 0,
  1504. X+         XV_Y, 92,
  1505. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1506. X+         XV_HEIGHT, 188,
  1507. X+         OPENWIN_SHOW_BORDERS, TRUE,
  1508. X+         NULL);
  1509. X+     return obj;
  1510. X+ }
  1511. X+ 
  1512. X+ /*
  1513. X+  * Create object `mail_controls1' in the specified instance.
  1514. X+ 
  1515. X+  */
  1516. X+ Xv_opaque
  1517. X+ contool_mail_mail_controls1_create(ip, owner)
  1518. X+     caddr_t        ip;
  1519. X+     Xv_opaque    owner;
  1520. X+ {
  1521. X+     Xv_opaque    obj;
  1522. X+     
  1523. X+     obj = xv_create(owner, PANEL,
  1524. X+         XV_KEY_DATA, INSTANCE, ip,
  1525. X+         XV_HELP_DATA, "contool:mail_controls1",
  1526. X+         XV_X, 0,
  1527. X+         XV_Y, 280,
  1528. X+         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1529. X+         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1530. X+         WIN_BORDER, FALSE,
  1531. X+         NULL);
  1532. X+     return obj;
  1533. X+ }
  1534. X+ 
  1535. X+ /*
  1536. X+  * Create object `accept_send' in the specified instance.
  1537. X+ 
  1538. X+  */
  1539. X+ Xv_opaque
  1540. X+ contool_mail_accept_send_create(ip, owner)
  1541. X+     caddr_t        ip;
  1542. X+     Xv_opaque    owner;
  1543. X+ {
  1544. X+     extern void        send_mail();
  1545. X+     Xv_opaque    obj;
  1546. X+     
  1547. X+     obj = xv_create(owner, PANEL_BUTTON,
  1548. X+         XV_KEY_DATA, INSTANCE, ip,
  1549. X+         XV_HELP_DATA, "contool:accept_send",
  1550. X+         XV_X, 193,
  1551. X+         XV_Y, 18,
  1552. X+         XV_WIDTH, 48,
  1553. X+         XV_HEIGHT, 20,
  1554. X+         PANEL_LABEL_STRING, "Send",
  1555. X+         PANEL_NOTIFY_PROC, send_mail,
  1556. X+         NULL);
  1557. X+     return obj;
  1558. X+ }
  1559. X+ 
  1560. X+ /*
  1561. X+  * Create object `cancel_mail' in the specified instance.
  1562. X+ 
  1563. X+  */
  1564. X+ Xv_opaque
  1565. X+ contool_mail_cancel_mail_create(ip, owner)
  1566. X+     caddr_t        ip;
  1567. X+     Xv_opaque    owner;
  1568. X+ {
  1569. X+     extern void        cancel_mail();
  1570. X+     Xv_opaque    obj;
  1571. X+     
  1572. X+     obj = xv_create(owner, PANEL_BUTTON,
  1573. X+         XV_KEY_DATA, INSTANCE, ip,
  1574. X+         XV_HELP_DATA, "contool:cancel_mail",
  1575. X+         XV_X, 253,
  1576. X+         XV_Y, 18,
  1577. X+         XV_WIDTH, 59,
  1578. X+         XV_HEIGHT, 20,
  1579. X+         PANEL_LABEL_STRING, "Cancel",
  1580. X+         PANEL_NOTIFY_PROC, cancel_mail,
  1581. X          NULL);
  1582. X      return obj;
  1583. X  }
  1584. X*** contool_ui.h.orig    Thu Nov  1 15:09:48 1990
  1585. X--- contool_ui.h    Thu Nov  1 13:47:26 1990
  1586. X***************
  1587. X*** 151,154 ****
  1588. X--- 151,226 ----
  1589. X  extern Xv_opaque    contool_store_store_type_create();
  1590. X  extern Xv_opaque    contool_store_store_file_create();
  1591. X  extern Xv_opaque    contool_store_accept_store_create();
  1592. X+ 
  1593. X+ typedef struct {
  1594. X+     Xv_opaque    about;
  1595. X+     Xv_opaque    about_controls;
  1596. X+     Xv_opaque    message1;
  1597. X+     Xv_opaque    message5;
  1598. X+     Xv_opaque    message6;
  1599. X+     Xv_opaque    message7;
  1600. X+     Xv_opaque    message8;
  1601. X+     Xv_opaque    message9;
  1602. X+     Xv_opaque    message10;
  1603. X+     Xv_opaque    message15;
  1604. X+     Xv_opaque    message11;
  1605. X+     Xv_opaque    message12;
  1606. X+     Xv_opaque    message13;
  1607. X+     Xv_opaque    message14;
  1608. X+     Xv_opaque    message16;
  1609. X+     Xv_opaque    message17;
  1610. X+     Xv_opaque    message18;
  1611. X+     Xv_opaque    message19;
  1612. X+     Xv_opaque    message20;
  1613. X+     Xv_opaque    send_mail;
  1614. X+ } contool_about_objects;
  1615. X+ 
  1616. X+ extern contool_about_objects    *contool_about_objects_initialize();
  1617. X+ 
  1618. X+ extern Xv_opaque    contool_about_about_create();
  1619. X+ extern Xv_opaque    contool_about_about_controls_create();
  1620. X+ extern Xv_opaque    contool_about_message1_create();
  1621. X+ extern Xv_opaque    contool_about_message5_create();
  1622. X+ extern Xv_opaque    contool_about_message6_create();
  1623. X+ extern Xv_opaque    contool_about_message7_create();
  1624. X+ extern Xv_opaque    contool_about_message8_create();
  1625. X+ extern Xv_opaque    contool_about_message9_create();
  1626. X+ extern Xv_opaque    contool_about_message10_create();
  1627. X+ extern Xv_opaque    contool_about_message15_create();
  1628. X+ extern Xv_opaque    contool_about_message11_create();
  1629. X+ extern Xv_opaque    contool_about_message12_create();
  1630. X+ extern Xv_opaque    contool_about_message13_create();
  1631. X+ extern Xv_opaque    contool_about_message14_create();
  1632. X+ extern Xv_opaque    contool_about_message16_create();
  1633. X+ extern Xv_opaque    contool_about_message17_create();
  1634. X+ extern Xv_opaque    contool_about_message18_create();
  1635. X+ extern Xv_opaque    contool_about_message19_create();
  1636. X+ extern Xv_opaque    contool_about_message20_create();
  1637. X+ extern Xv_opaque    contool_about_send_mail_create();
  1638. X+ 
  1639. X+ typedef struct {
  1640. X+     Xv_opaque    mail;
  1641. X+     Xv_opaque    mail_controls;
  1642. X+     Xv_opaque    message21;
  1643. X+     Xv_opaque    message22;
  1644. X+     Xv_opaque    address;
  1645. X+     Xv_opaque    other_address;
  1646. X+     Xv_opaque    message;
  1647. X+     Xv_opaque    mail_controls1;
  1648. X+     Xv_opaque    accept_send;
  1649. X+     Xv_opaque    cancel_mail;
  1650. X+ } contool_mail_objects;
  1651. X+ 
  1652. X+ extern contool_mail_objects    *contool_mail_objects_initialize();
  1653. X+ 
  1654. X+ extern Xv_opaque    contool_mail_mail_create();
  1655. X+ extern Xv_opaque    contool_mail_mail_controls_create();
  1656. X+ extern Xv_opaque    contool_mail_message21_create();
  1657. X+ extern Xv_opaque    contool_mail_message22_create();
  1658. X+ extern Xv_opaque    contool_mail_address_create();
  1659. X+ extern Xv_opaque    contool_mail_other_address_create();
  1660. X+ extern Xv_opaque    contool_mail_message_create();
  1661. X+ extern Xv_opaque    contool_mail_mail_controls1_create();
  1662. X+ extern Xv_opaque    contool_mail_accept_send_create();
  1663. X+ extern Xv_opaque    contool_mail_cancel_mail_create();
  1664. X  #endif
  1665. X*** filename_completion.c.orig    Thu Nov  1 15:09:50 1990
  1666. X--- filename_completion.c    Tue Oct 23 08:20:50 1990
  1667. X***************
  1668. X*** 0 ****
  1669. X--- 1,52 ----
  1670. X+ /************************************************************************/
  1671. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1672. X+ /*                                    */
  1673. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1674. X+ /*    and its documentation for any purpose and without fee is    */
  1675. X+ /*    hereby granted, provided that the above copyright notice    */
  1676. X+ /*    appear in all copies and that both that copyright notice and    */
  1677. X+ /*    this permission notice appear in supporting documentation, and    */
  1678. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1679. X+ /*    used in advertising or publicity pertaining to distribution    */
  1680. X+ /*    of the software without specific, written prior permission.    */
  1681. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1682. X+ /*    about the suitability of this software for any purpose.  It is    */
  1683. X+ /*    provided "as is" without express or implied warranty.  This     */
  1684. X+ /*    software may not be sold without the prior explicit permission    */
  1685. X+ /*    of Harris Corporation.                        */
  1686. X+ /************************************************************************/
  1687. X+ 
  1688. X+ /************************************************************************/
  1689. X+ /*                                    */
  1690. X+ /*    filename_completion.c    completion handler for text items    */
  1691. X+ /*                                    */
  1692. X+ /************************************************************************/
  1693. X+ 
  1694. X+ #include    <stdio.h>
  1695. X+ #include    <sys/param.h>
  1696. X+ #include    <sys/types.h>
  1697. X+ #include    <xview/xview.h>
  1698. X+ #include    <xview/panel.h>
  1699. X+ 
  1700. X+ #include    "manifest.h"
  1701. X+ 
  1702. X+ /************************************************************************/
  1703. X+ EXPORT    Panel_setting    filename_completion(item, event)
  1704. X+ 
  1705. X+ Panel_item    item;
  1706. X+ Event        *event;
  1707. X+ 
  1708. X+ {    char    *p, *expand_filename();
  1709. X+ 
  1710. X+     switch (event_action(event)) {
  1711. X+        case '\n' :
  1712. X+        case '\r' :
  1713. X+        case ' '  : if ((p = expand_filename((char *) xv_get(item, PANEL_VALUE))) == NULL)
  1714. X+                  window_bell(xv_get(item, XV_OWNER));
  1715. X+                   else
  1716. X+                      xv_set(item, PANEL_VALUE, p, 0);
  1717. X+                   return(PANEL_NONE);
  1718. X+        case '\t' : return(event_shift_is_down(event)? PANEL_PREVIOUS : PANEL_NEXT);
  1719. X+        default   : return(panel_text_notify(item, event));
  1720. X+        }
  1721. X+ }
  1722. X*** load_icon.c.orig    Thu Nov  1 15:09:55 1990
  1723. X--- load_icon.c    Thu Nov  1 09:07:38 1990
  1724. X***************
  1725. X*** 23,29 ****
  1726. X  #include    <xview/icon_load.h>
  1727. X  
  1728. X  #include    "manifest.h"
  1729. X! #include    "contool.h"
  1730. X  
  1731. X  PUBLIC    char    *getenv();
  1732. X  
  1733. X--- 23,32 ----
  1734. X  #include    <xview/icon_load.h>
  1735. X  
  1736. X  #include    "manifest.h"
  1737. X! 
  1738. X! #if !defined(ICON_PATH)
  1739. X! #define        ICON_PATH        ".:./icons:/usr/local/images:/usr/include/images"
  1740. X! #endif
  1741. X  
  1742. X  PUBLIC    char    *getenv();
  1743. X  
  1744. X*** patchlevel.h.orig    Thu Nov  1 15:10:00 1990
  1745. X--- patchlevel.h    Thu Nov  1 09:08:10 1990
  1746. X***************
  1747. X*** 2,8 ****
  1748. X--- 2,12 ----
  1749. X  /*                                    */
  1750. X  /*    Patch        Comments                    */
  1751. X  /*      0        Initial release for XView            */
  1752. X+ /*               comp.sources.x: Volume 10, Issues 34-39    */
  1753. X  /*                                    */
  1754. X  /*      1        Bug fixes; see README for details        */
  1755. X+ /*               comp.sources.x: Volume 10, Issue 40        */
  1756. X+ /*                                    */
  1757. X+ /*      2        Bug fixes; see README for details        */
  1758. X  /*                                    */
  1759. X  /************************************************************************/
  1760. X*** pinned_menu_notify.c.orig    Thu Nov  1 15:10:00 1990
  1761. X--- pinned_menu_notify.c    Tue Oct 23 08:03:27 1990
  1762. X***************
  1763. X*** 0 ****
  1764. X--- 1,52 ----
  1765. X+ /************************************************************************/
  1766. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1767. X+ /*                                    */
  1768. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1769. X+ /*    and its documentation for any purpose and without fee is    */
  1770. X+ /*    hereby granted, provided that the above copyright notice    */
  1771. X+ /*    appear in all copies and that both that copyright notice and    */
  1772. X+ /*    this permission notice appear in supporting documentation, and    */
  1773. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1774. X+ /*    used in advertising or publicity pertaining to distribution    */
  1775. X+ /*    of the software without specific, written prior permission.    */
  1776. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1777. X+ /*    about the suitability of this software for any purpose.  It is    */
  1778. X+ /*    provided "as is" without express or implied warranty.  This     */
  1779. X+ /*    software may not be sold without the prior explicit permission    */
  1780. X+ /*    of Harris Corporation.                        */
  1781. X+ /************************************************************************/
  1782. X+ 
  1783. X+ /************************************************************************/
  1784. X+ /*                                    */
  1785. X+ /*    pinned_menu_notify.c    GUIDE callback for pinned menus        */
  1786. X+ /*                                    */
  1787. X+ /************************************************************************/
  1788. X+ 
  1789. X+ #include    <stdio.h>
  1790. X+ #include    <sys/param.h>
  1791. X+ #include    <sys/types.h>
  1792. X+ #include    <xview/xview.h>
  1793. X+ 
  1794. X+ #include    "manifest.h"
  1795. X+ 
  1796. X+ /************************************************************************/
  1797. X+ EXPORT    void    pinned_menu_notify(menu, item)
  1798. X+ 
  1799. X+ Menu        menu;
  1800. X+ Menu_item    item;
  1801. X+ 
  1802. X+ {    Xv_opaque    pin_window     = (Xv_opaque) xv_get(menu, MENU_PIN_WINDOW);
  1803. X+     void        (*menu_notify)() = (void (*)()) xv_get(menu, MENU_GEN_PROC);
  1804. X+     void        (*item_notify)() = (void (*)()) xv_get(item, MENU_GEN_PROC);
  1805. X+     
  1806. X+     if (pin_window && xv_get(pin_window, XV_SHOW)) {
  1807. X+        if (menu_notify)
  1808. X+           (*menu_notify)(menu, MENU_NOTIFY);
  1809. X+        if (item_notify)
  1810. X+           (*item_notify)(item, MENU_NOTIFY);
  1811. X+        if (item_notify)
  1812. X+           (*item_notify)(item, MENU_NOTIFY_DONE);
  1813. X+        if (menu_notify)
  1814. X+           (*menu_notify)(menu, MENU_NOTIFY_DONE);
  1815. X+     }
  1816. X+ }
  1817. X*** place_dialog.c.orig    Thu Nov  1 15:10:01 1990
  1818. X--- place_dialog.c    Tue Oct 23 08:03:26 1990
  1819. X***************
  1820. X*** 0 ****
  1821. X--- 1,65 ----
  1822. X+ /************************************************************************/
  1823. X+ /*    Copyright 1988-1990 by Chuck Musciano and Harris Corporation    */
  1824. X+ /*                                    */
  1825. X+ /*    Permission to use, copy, modify, and distribute this software    */
  1826. X+ /*    and its documentation for any purpose and without fee is    */
  1827. X+ /*    hereby granted, provided that the above copyright notice    */
  1828. X+ /*    appear in all copies and that both that copyright notice and    */
  1829. X+ /*    this permission notice appear in supporting documentation, and    */
  1830. X+ /*    that the name of Chuck Musciano and Harris Corporation not be    */
  1831. X+ /*    used in advertising or publicity pertaining to distribution    */
  1832. X+ /*    of the software without specific, written prior permission.    */
  1833. X+ /*    Chuck Musciano and Harris Corporation make no representations    */
  1834. X+ /*    about the suitability of this software for any purpose.  It is    */
  1835. X+ /*    provided "as is" without express or implied warranty.  This     */
  1836. X+ /*    software may not be sold without the prior explicit permission    */
  1837. X+ /*    of Harris Corporation.                        */
  1838. X+ /************************************************************************/
  1839. X+ 
  1840. X+ /************************************************************************/
  1841. X+ /*                                    */
  1842. X+ /*    place_dialog.c    position a dialog box at the right place    */
  1843. X+ /*                                    */
  1844. X+ /************************************************************************/
  1845. X+ 
  1846. X+ #include    <stdio.h>
  1847. X+ #include    <sys/param.h>
  1848. X+ #include    <sys/types.h>
  1849. X+ #include    <xview/xview.h>
  1850. X+ #include    <X11/Xutil.h>
  1851. X+ 
  1852. X+ #include    "manifest.h"
  1853. X+ 
  1854. X+ /************************************************************************/
  1855. X+ EXPORT    void    place_dialog(base, dialog)
  1856. X+ 
  1857. X+ Xv_opaque    base;
  1858. X+ Xv_opaque    dialog;
  1859. X+ 
  1860. X+ {    Rect        br, dr, sr;
  1861. X+     XWMHints    *hints;
  1862. X+ 
  1863. X+     sr = *((Rect *) xv_get(base, WIN_SCREEN_RECT));
  1864. X+     frame_get_rect(base, &br);
  1865. X+     frame_get_rect(dialog, &dr);
  1866. X+     if (rect_right(&br) + dr.r_width < sr.r_width) {
  1867. X+        dr.r_left = rect_right(&br);
  1868. X+        dr.r_top = br.r_top;
  1869. X+        }
  1870. X+     else if (dr.r_width <= br.r_left) {
  1871. X+        dr.r_left = br.r_left - dr.r_width;
  1872. X+        dr.r_top = br.r_top;
  1873. X+        }
  1874. X+     else {
  1875. X+        dr.r_left = br.r_left + 32;
  1876. X+        dr.r_top = br.r_top + 32;
  1877. X+        }
  1878. X+     frame_set_rect(dialog, &dr);
  1879. X+ 
  1880. X+     hints = XGetWMHints(xv_get(dialog, XV_DISPLAY), xv_get(dialog, XV_XID));
  1881. X+     hints->flags |= StateHint;
  1882. X+     hints->initial_state = NormalState;
  1883. X+     XSetWMHints(xv_get(dialog, XV_DISPLAY), xv_get(dialog, XV_XID), hints);
  1884. X+     XFree(hints);
  1885. X+ }
  1886. X+ 
  1887. X*** send_mail.c.orig    Thu Nov  1 15:10:04 1990
  1888. X--- send_mail.c    Thu Nov  1 13:39:36 1990
  1889. X***************
  1890. X*** 0 ****
  1891. X--- 1,112 ----
  1892. X+ /************************************************************************/
  1893. X+ /*                                    */
  1894. X+ /*    send_mail.c    display a little information window        */
  1895. X+ /*                                    */
  1896. X+ /************************************************************************/
  1897. X+ 
  1898. X+ #include    <stdio.h>
  1899. X+ #include    <sys/param.h>
  1900. X+ #include    <sys/types.h>
  1901. X+ #include    <xview/xview.h>
  1902. X+ #include    <xview/panel.h>
  1903. X+ #include    <xview/textsw.h>
  1904. X+ #include    "contool_ui.h"
  1905. X+ 
  1906. X+ #include    "manifest.h"
  1907. X+ 
  1908. X+ PUBLIC    contool_base_objects    *contool_base;
  1909. X+ 
  1910. X+ PRIVATE    contool_mail_objects    *dialog = NULL;
  1911. X+ 
  1912. X+ /************************************************************************/
  1913. X+ EXPORT    popup_send_mail(item, event)
  1914. X+ 
  1915. X+ Panel_item    item;
  1916. X+ Event        *event;
  1917. X+ 
  1918. X+ {
  1919. X+     if (dialog == NULL) {
  1920. X+        dialog = contool_mail_objects_initialize(NULL, contool_base->base);
  1921. X+        place_dialog(contool_base->base, dialog->mail);
  1922. X+        xv_set(dialog->other_address, WIN_SHOW, FALSE, NULL);
  1923. X+        }
  1924. X+     xv_set(dialog->mail, XV_SHOW, TRUE, NULL);
  1925. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  1926. X+ }
  1927. X+ 
  1928. X+ /************************************************************************/
  1929. X+ EXPORT    void    handle_address(item, value, event)
  1930. X+ 
  1931. X+ Panel_item    item;
  1932. X+ int        value;
  1933. X+ Event        *event;
  1934. X+ 
  1935. X+ {
  1936. X+     if (value == 2) {
  1937. X+        xv_set(dialog->other_address, WIN_SHOW, TRUE, NULL);
  1938. X+        panel_paint(dialog->address, PANEL_NO_CLEAR);
  1939. X+        panel_paint(dialog->other_address, PANEL_NO_CLEAR);
  1940. X+        }
  1941. X+     else {
  1942. X+        xv_set(dialog->other_address, WIN_SHOW, FALSE, NULL);
  1943. X+        panel_paint(dialog->address, PANEL_NO_CLEAR);
  1944. X+        }
  1945. X+ }
  1946. X+ 
  1947. X+ /************************************************************************/
  1948. X+ EXPORT    void    send_mail(item, event)
  1949. X+ 
  1950. X+ Panel_item    item;
  1951. X+ Event        *event;
  1952. X+ 
  1953. X+ {    char    cmd[1024], *buf;
  1954. X+     int    val, size;
  1955. X+     FILE    *pipe;
  1956. X+ 
  1957. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_ERROR, 0);
  1958. X+     val = (int) xv_get(dialog->address, PANEL_VALUE);
  1959. X+     if (val != 2)
  1960. X+        sprintf(cmd, "%s %s", MAILER, xv_get(dialog->address, PANEL_CHOICE_STRING, val));
  1961. X+     else {
  1962. X+        buf = (char *) xv_get(dialog->other_address, PANEL_VALUE);
  1963. X+        if (is_empty(buf)) {
  1964. X+           error("You must specify an alternate address before sending your message");
  1965. X+           return;
  1966. X+           }
  1967. X+        else
  1968. X+           sprintf(cmd, "%s %s", MAILER, buf);
  1969. X+        }
  1970. X+     lets_get_busy(contool_base->base, TRUE, NULL);
  1971. X+     if ((pipe = popen(cmd, "w")) == NULL) {
  1972. X+        error("Could not invoke \"%s\" to send mail", cmd);
  1973. X+        return;
  1974. X+        }
  1975. X+     size = (int) xv_get(dialog->message, TEXTSW_LENGTH);
  1976. X+     if (size == 0) {
  1977. X+        error("Please type a message before sending the mail");
  1978. X+        return;
  1979. X+        }
  1980. X+     buf = (char *) malloc(size);
  1981. X+     xv_get(dialog->message, TEXTSW_CONTENTS, 0, buf, size);
  1982. X+     fprintf(pipe, "Subject: Contool comment\n\n");
  1983. X+     if (fwrite(buf, 1, size, pipe) != size) {
  1984. X+        error("Could not write message to the mailer");
  1985. X+        free(buf);
  1986. X+        return;
  1987. X+        }
  1988. X+     pclose(pipe);
  1989. X+     free(buf);
  1990. X+     lets_get_busy(contool_base->base, FALSE, NULL);
  1991. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_OK, 0);
  1992. X+ }
  1993. X+ 
  1994. X+ /************************************************************************/
  1995. X+ EXPORT    void    cancel_mail(item, event)
  1996. X+ 
  1997. X+ Panel_item    item;
  1998. X+ Event        *event;
  1999. X+ 
  2000. X+ {
  2001. X+     textsw_reset(dialog->message, 0, 0);
  2002. X+     xv_set(item, PANEL_NOTIFY_STATUS, XV_ERROR, 0);
  2003. X+ }
  2004. END_OF_FILE
  2005. if test 57082 -ne `wc -c <'patch'`; then
  2006.     echo shar: \"'patch'\" unpacked with wrong size!
  2007. fi
  2008. # end of 'patch'
  2009. fi
  2010. echo shar: End of shell archive.
  2011. exit 0
  2012.  
  2013. Chuck Musciano                ARPA  : chuck@trantor.harris-atd.com
  2014. Harris Corporation             Usenet: ...!uunet!x102a!trantor!chuck
  2015. PO Box 37, MS 3A/1912            AT&T  : (407) 727-6131
  2016. Melbourne, FL 32902            FAX   : (407) 729-2537
  2017.  
  2018. A good newspaper is never good enough,
  2019.     but a lousy newspaper is a joy forever.        -- Garrison Keillor
  2020.